<?php /* 
==================================================
TextCMS -- simple plain/text CMS with GPL licence
Feedback module
(c) 2008, 4X_Pro
Visit us online: http://textcms.ru
==================================================
*/

/** Форма отправки обратной связи.
Можно указывать шаблон формы в параметре $template.
Форма должна отсылаться методом POST, отправляются все поля, кроме submit.
Из поля email берется адрес отправителя, если он не указан, 
в качестве адреса отправки указвыается адрес админа сайта.
**/
function feedback_main($email=false,$template='feedback.htm',$message='Ваше сообщение отправлено!') {
	if (!$email) $email=$GLOBALS['config']['admin_email'];
  if (!($captcha=cms_module_load('captcha'))) trigger_error('Не удалось найти модуль captcha! Отправка будет осуществляться без проверки, что чревато получением спама.',E_USER_NOTICE);
  $sent=false;
	$message='';
  if (strtoupper($_SERVER['REQUEST_METHOD'])=='POST') {
    if ($captcha && !captcha_check()) {
      $message='Неправильно введен код подтверждения CAPTCHA!';
    }
    else {
			$GLOBALS['lastmod']=time(); 
			$mailtemplate = cms_output_load_template('mail.htm','feedback');
			$mailtemplate = str_replace('#SITENAME#',$GLOBALS['config']['sitename'],$mailtemplate);
			$ip=$_SERVER['REMOTE_ADDR'];
			if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ip.=' ('.$_SERVER['HTTP_X_FORWARDED_FOR'].')';
			$mailtemplate = str_replace('#SENDER_IP#',$ip,$mailtemplate);
			$mailtemplate = str_replace('#FEEDBACK_ADDRESS#',$GLOBALS['pagedata']['url'],$mailtemplate);
			$buffer='';
      foreach ($_POST as $item=>$value) if ($item!='submit' && $item!='captcha_code' && $item!='captcha_text') {
        $buffer.=$item.' : '.$value."\r\n";
  			$mailtemplate = str_replace('#'.$item.'#',$value,$mailtemplate);
      }
			$mailtemplate = str_replace('#CONTENT#',$buffer,$mailtemplate);
      $from=(isset($_POST['email'])) ? $_POST['email'] : $GLOBALS['config']['admin_email'];
      if ($sent=cms_module_load('sendmail')) $sent=sendmail_send($mailtemplate,$email,'Сообщение обратной связи с '.$GLOBALS['config']['sitename'],$from);
      else trigger_error('Ошибка загрузки модуля sendmail! Отправка почты не была произведена!',E_USER_WARNING);
      if (!$sent) $message='Ошибка отправки формы! Проверьте, правильно ли вы ввели Email!';
			else $message='Ваше сообщение успешно отправлено!';
    }
  }
  if (!$sent) {
    if (!$template || !cms_valid_file($template)) $template='feedback.htm';
    $page=cms_output_load_template($template,'feedback');
    $page=str_replace('#message#',$message,$page);
		if (strtoupper($_SERVER['REQUEST_METHOD'])=='POST') {
			cms_module_load('cmsmain');
			$page=cmsmain_html_set($page,$_POST);
		}
    if ($captcha) $page=captcha_set_elements($page);
    return $page;
  }
  else return str_replace('#message#',$message,cms_output_load_template('sent.htm','feedback'));
}
